package com.shxy.info.util;

import lombok.extern.java.Log;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 * 文件工具类
 */
@Log
public class MyFileUtils {

    /**
     * 从指定路径获取文件列表
     * @param path 文件夹路径
     * @param extension 文件后缀
     * @return
     */
    public static List<File> getFilesFromPath(String path, String[] extension){
        //1、检查路径是否是合法的文件夹
        File dir = new File(path);
        if(!dir.exists() || !dir.isDirectory()){
            return null;
        }
        //2、获取所有的文件
        Collection<File> files = FileUtils.listFiles(dir, extension, true);
        /*for (File f : files) {
            log.info(f.toString());
        }*/
        return new ArrayList<>(files);
    }

    /**
     * 获取文件MD5编码
     * @param file
     * @return
     */
    public static String getMd5(File file){
        try (FileInputStream fileInputStream = new FileInputStream(file)){
            return DigestUtils.md5Hex(IOUtils.toByteArray(fileInputStream));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }
}
